ffmpeg中使用screen capture recorder录音的问题 |
您所在的位置:网站首页 › dll 卸载 › ffmpeg中使用screen capture recorder录音的问题 |
看完本篇文章,可以解决使用ffmpeg录屏时需要的screen capture recorder软件过大问题 在windows下使用ffmpeg 的-gdigrab方法录屏是没有声音的! ffmpeg -f gdigrab -i desktop test.mp4解决办法就是注册dshow软件 Screen Capturer Recorder的虚拟音频捕捉设备(virtual-audio-capturer)获取音频。现在网上大多数的教程都是直接从 https://sourceforge.net/projects/screencapturer/files/ 下载安装Screen Capturer Recorder 然后用: ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" test.mp4 或 ffmpeg -f gdigrab -i desktop -f dshow -i audio="virtual-audio-capturer" test.mp4录屏;虽然这种方法可用,但为了录个音还要再去安装一个48M的软件???! 显然太麻烦了(当然我之前也是这么做的hhh),尤其是做要打包分发的项目时。 我们分析一下上面的录屏代码,发现我们需要的只是virtual-audio-capturer(捕获音频的虚拟设备)而已,有没有办法可以直接获得这个dshow设备呢? 再看一下安装 Screen Capturer Recorder的安装目录 virtual-audio(文件夹名称)?screen-capture-recorder.dll?这不正是我们需要的dshow设备名称嘛,再看一下GitHub上的项目,里面也标明了如果需要的较小体积可以直接注册dll。 现在我们知道了可以通过注册这两个dll(分了64和32位版本所以有4个)获得相应的dshow设备。 其实,screen capture recorder软件那么大是因为它本身就是一个录屏软件,自带了ffmpeg,当然大了,而我们只需要它的virtual-audio-capturer的功能,所以直接注册dll即可!实际使用中,笔者发现GitHub上的那个dll是不能使用的…不知道为什么,所以以下教程是直接从安装的Screen Capturer Recorder软件中提取dll并注册。 从Screen Capturer Recorder提取dll安装Screen Capturer Recorder(那个48M的软件)后, 我们先测试一下ffmpeg中是否可以读取到screen-capture-recorder和virtual-audio-capturer ffmpeg -list_devices true -f dshow -i dummy然后我们把上面提到的那俩个dll复制出来放好,注意要拿和你的ffmpeg位数相同的dll(我用的ffmpeg是64位的所以复制了带有x64的)。 然后安装的screen capture recorder软件就可以卸载了 现在我们再看一下有没有dshow软件 显然已经没有了(说明已经卸载完了) 注册dll:接着我们就要把刚才复制出来的两个dll注册到系统中让ffmpeg识别出来 这个就当作普通dll的注册方法: 注册dll一般是在dll目录下打开有管理员权限的命令行,直接输入regsvr32+xxx.dll注册,注意一定要是管理员权限,dll可以放在任何文件夹 例如: 我的dll在E盘根目录下(实际使用可以放在项目目录) 然后打开管理员命令行:右键左下角win图标-windows powershell(管理员) cd 到dll所在目录下(我的是E: \) 输入注册dll命令:regsvr32 audio_sniffer-x64.dll 注册virtual-audio-capturer dshow滤镜,下图这样就是注册成功了 然后看一下ffmpeg是否能够读取到dll ffmpeg -list_devices true -f dshow -i dummy可以看到virtual-audio-capturer 滤镜已经注册到系统了,再用: ffmpeg -f gdigrab -i desktop -f dshow -i audio="virtual-audio-capturer" test.mp4测试一下录屏是否能录到系统的声音了(麦克风的声音要把virtual-audio-capturer改成麦克风设备) 同样道理,如果想用screen capture recorder的虚拟显示捕获设备,也可以注册screen-capture-recorde.dll也注册了,这里不再累赘。与直接安装screen capture recorder软件相比,dll的注册只占了几十k的空间,美滋滋~ 想要卸载dll可以用:regsvr32 /u audio_sniffer-x64.dll 命令 注意一定要用管理员权限的命令行!!! 文中提到的dll已经上传下载地址:有32位和64位https://download.csdn.net/download/Fandes_F/12273068 就不用再去下载那个48M的exe文件了(我还能混点积分hhh) 总结:ffmpeg录屏中直接注册audio_sniffer.dll可以获得"virtual-audio-capturer" dshow滤镜用以录系统声音;注册screen-capture-recorder.dll可以获得"screen-capture-recorder" dshow滤镜录屏 菜鸟的经验分享,大佬轻喷。。。。 参考: screen-capture-recorder和virtual-audio-capture的官方说明 https://github.com/rdp/screen-capture-recorder-to-video-windows-free https://github.com/rdp/virtual-audio-capture-grabber-device |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |